package com.doit.day01;

import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
import redis.clients.jedis.Jedis;

public class _04_模拟生产队列练习1 {
    public static void main(String[] args) throws InterruptedException {

        Jedis jedis = new Jedis("linux01",6379);

        while (true){
            //从缓冲区中奖task任务一个个拿出来进行消费。消费的时候可能会出现，失败或者成功两种可能
            //如果失败，还要继续放回到缓冲区中在进行重试
            String consumerTask = jedis.rpop("cache_task");
            System.out.println("任务已经被消费：........"+consumerTask);
            int num = RandomUtils.nextInt(100, 200);
            //如果创建出来的随机数能被3整除，那么就代表他是失败的
            if (num % 3 == 0){
                //失败的就要放回到缓冲区中
                jedis.lpush("cache_task",consumerTask);
                System.out.println("任失败的任务重新放回到缓冲区：........"+consumerTask);
            }else{
                System.out.println("任务执行成功：........"+consumerTask);
            }
            Thread.sleep(RandomUtils.nextInt(100,200));


        }



    }
}
